Web Worker API

Web Development - জাভাস্ক্রিপ্ট (JavaScript) জাভাস্ক্রিপ্ট ওয়েব এপিআই (JS Web API) |
281
281

Web Worker API হল একটি ব্রাউজার API যা জাভাস্ক্রিপ্ট কোডকে ব্যাকগ্রাউন্ডে (main UI thread এর বাইরে) এক্সিকিউট করার সুযোগ দেয়। এটি প্রধানত বড় এবং জটিল কাজ, যেমন ডেটা প্রসেসিং বা বড় লুপ, মূল থ্রেডের কার্যক্ষমতা কমিয়ে না এনে সম্পন্ন করার জন্য ব্যবহৃত হয়। Web Worker API ব্যবহার করে, আপনি ব্যাকগ্রাউন্ড থ্রেডে কোড রান করতে পারেন এবং মূল UI থ্রেডটি ব্যবহারকারীর ইন্টারফেসের জন্য মুক্ত রাখতে পারেন।


Web Worker এর সুবিধা

  1. UI এর স্থিরতা: Web Worker ব্যবহার করে ভারী জাভাস্ক্রিপ্ট কাজগুলো ব্যাকগ্রাউন্ডে সরিয়ে ফেলা যায়, যা UI কে ফ্রিজ বা হ্যাং হওয়া থেকে রক্ষা করে।
  2. প্যারালাল প্রসেসিং: Web Worker ব্যবহার করে জাভাস্ক্রিপ্ট কোড প্যারালাল থ্রেডে চালানো যায়, যা পারফরম্যান্স উন্নত করে।
  3. অ্যাসিঙ্ক্রোনাস প্রসেসিং: এটি অ্যাসিঙ্ক্রোনাস কাজ সম্পাদনের জন্য কার্যকর, যেখানে দীর্ঘস্থায়ী কাজ (যেমন ফাইল প্রসেসিং, বড় ডেটা হ্যান্ডলিং) সম্পন্ন করা হয়।

Web Worker এর কাজ করার পদ্ধতি

১. Worker তৈরি করা

Worker ক্লাস ব্যবহার করে একটি নতুন Worker থ্রেড তৈরি করা হয়। এটি একটি JavaScript ফাইল নেয়, যেটি Worker এর কাজের লজিক ধারণ করে।

উদাহরণ:

// main.js
const worker = new Worker('worker.js');

worker.postMessage('Hello, Worker!');
worker.onmessage = function(event) {
    console.log('Message from Worker:', event.data);
};
// worker.js
self.onmessage = function(event) {
    console.log('Message from Main:', event.data);
    self.postMessage('Hello from Worker!');
};

এখানে, main.js থেকে Worker তৈরি করা হয়েছে এবং postMessage() মেথড ব্যবহার করে Worker-এ বার্তা পাঠানো হয়েছে। Worker থেকে আবার মেইন থ্রেডে বার্তা পাঠানো হয়েছে।


২. বার্তা আদান-প্রদান (Message Passing)

Worker এবং মূল স্ক্রিপ্টের মধ্যে যোগাযোগ postMessage() এবং onmessage ইভেন্ট হ্যান্ডলার ব্যবহার করে করা হয়।

উদাহরণ:

// main.js
const worker = new Worker('worker.js');

// মেইন থেকে Worker-এ বার্তা পাঠানো
worker.postMessage('Process this data!');

// Worker থেকে বার্তা গ্রহণ
worker.onmessage = function(event) {
    console.log('Received from Worker:', event.data);
};
// worker.js
self.onmessage = function(event) {
    console.log('Received from Main:', event.data);

    // প্রক্রিয়াজাত ডেটা ফেরত পাঠানো
    const processedData = event.data.toUpperCase();
    self.postMessage(processedData);
};

৩. Worker বন্ধ করা

কোনো Worker এর কাজ সম্পন্ন হলে এটি বন্ধ করার জন্য terminate() মেথড ব্যবহার করা হয়। Worker নিজেও close() মেথড ব্যবহার করে নিজেকে বন্ধ করতে পারে।

উদাহরণ:

// main.js
const worker = new Worker('worker.js');

// Worker বন্ধ করা
worker.terminate();
// worker.js
self.onmessage = function(event) {
    if (event.data === 'stop') {
        self.close();  // Worker নিজেকে বন্ধ করবে
    }
};

Web Worker এর সীমাবদ্ধতা

  1. DOM অ্যাক্সেস নেই: Web Worker DOM এর সাথে সরাসরি ইন্টারঅ্যাক্ট করতে পারে না।
  2. সিঙ্ক্রোনাস কাজের সীমাবদ্ধতা: Worker এর কাজ সম্পন্ন হতে সময় লাগে এবং এটি অ্যাসিঙ্ক্রোনাস প্রকৃতির।
  3. বাইরের ফাইল লোড করা: Worker শুধুমাত্র ফাইল সিস্টেম বা সঠিক CORS সেটআপ সহ এক্সটার্নাল স্ক্রিপ্ট লোড করতে পারে।
  4. নেটওয়ার্ক রিকুয়েস্ট সীমাবদ্ধতা: Worker নিজস্ব নেটওয়ার্ক রিকুয়েস্ট করতে পারে, তবে এটি মূল থ্রেডের নেটওয়ার্ক রিকুয়েস্ট থেকে আলাদা।

Web Worker এর ব্যবহার ক্ষেত্র

  1. বড় ডেটা প্রসেসিং: Worker ব্যাকগ্রাউন্ডে বড় ডেটাসেট প্রক্রিয়া করতে পারে।
  2. ইমেজ প্রসেসিং: ইমেজ বা ভিডিও প্রক্রিয়া করার জন্য Worker ব্যবহার করা যেতে পারে।
  3. ফাইল এনক্রিপশন/ডিক্রিপশন: নিরাপত্তা বজায় রেখে ব্যাকগ্রাউন্ডে ফাইল এনক্রিপশন বা ডিক্রিপশন সম্পন্ন করা যায়।
  4. রিয়েল-টাইম ডেটা প্রসেসিং: বড় অ্যাপ্লিকেশনের জন্য রিয়েল-টাইম ডেটা প্রসেসিং সহজ হয়।

সারাংশ

Web Worker API জাভাস্ক্রিপ্টের জন্য একটি কার্যকর টুল, যা ব্যাকগ্রাউন্ডে ভারী কাজ সম্পন্ন করতে সাহায্য করে এবং UI থ্রেডকে ফ্রিজ হওয়া থেকে রক্ষা করে। এটি প্যারালাল প্রসেসিং এবং অ্যাসিঙ্ক্রোনাস কার্য সম্পাদনের জন্য খুবই কার্যকর। যদিও এটি DOM অ্যাক্সেস করতে পারে না এবং কিছু সীমাবদ্ধতা রয়েছে, তবে সঠিকভাবে ব্যবহার করলে এটি ওয়েব অ্যাপ্লিকেশনের পারফরম্যান্স উল্লেখযোগ্যভাবে উন্নত করতে পারে। Web Worker API জটিল অ্যাপ্লিকেশনগুলোর জন্য অত্যন্ত প্রয়োজনীয়।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion